let fs = require('fs');

module.exports = (req, res, next) => {
    if(req.files){
        let today = new Date(),
            dirName = today.getFullYear() + '-' + (today.getMonth()+1) + '-' + today.getDate(),     //目录命名 - 使用当前日期
            files = req.files.file,         //文件
            fileName = files.name;          //文件名

        // 判断文件夹是否存在，没有就创建
        let dirPath = process.cwd() + '/public/picture/' + dirName;
            dirStatus = fs.existsSync(dirPath); //检测目录是否存在
        if(!dirStatus){
            fs.mkdir(dirPath, 0777, function(err){
                if(err){
                 console.log(err);
                }else{
                 console.log("creat done!");
                }
            })
        }

        // 配置文件
        let source = fs.createReadStream(files.path),
            suffixSplit = fileName.split('.'),
            suffix = suffixSplit[suffixSplit.length - 1],     //截取后缀
            outputUrl = '/picture/' + dirName + '/' + today.getTime() + '.' + suffix,        //输出地址
            saveFile = fs.createWriteStream(dirPath + '/' + today.getTime() + '.' + suffix);
        
        // 保存文件
        source.pipe(saveFile);
        source.on('end', function() {
            // 删除临时文件
            fs.unlinkSync(files.path);
            
            res.json({
                result: 1,
                data: {
                    path: outputUrl,
                    name: fileName
                }
            })
        });   
        source.on('error', function(err) {
            res.json(resFail(JSON.stringify(err)))
        });
    }else{
        res.json(resFail('无法获取上传的文件'))
    }
}